The world of computing has increased the ability to create and use data. Correspondingly, more applications are created to generate and use more and more data. Data centers and server farms are now common, where many processing nodes operate in parallel across an interconnection fabric. Many operations in such environments involve the computation of many calculations that lend well to parallelism. Thus, a workload can be spread across many nodes in parallel for computation. Computations can be considered to need processing resources as well as data storage resources, especially for data-heavy operations. The sharing of processing resources enables remote nodes to perform computations. The sharing of memory resources enables remote nodes to store data and perform computations related to an overall operation.
However, there are inherent latency limitations in such an environment of memory sharing. Consider the scenario of a node (A) wanting to update a line in the local address space that is mapped to a remote node (B). (A) will first have to fetch and read the data from B, do some computation on the data, and store the data back to memory on node (B). In many cases, the operation to be performed on the memory of the remote node may be simple, for example, zeroing a range of memory in the remote node or performing a simple operation such as a data filter or search. The overhead of copying the data over the fabric, performing a relatively inexpensive compute operation, and moving the data back to the remote node is wasteful both in terms of additional latency incurred by the application to engage in the data transfers, as well as consumption of fabric bandwidth. Fabric bandwidth refers to the amount of data exchanged over the switching fabric interconnecting the nodes, and since it is a limited resource, excessive use can create a latency bottleneck.
Descriptions of certain details and implementations follow, including a description of the figures, which may depict some or all of the embodiments described below, as well as discussing other potential embodiments or implementations of the inventive concepts presented herein.